package com.doubao.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 用户会员信息实体类
 */
@Data
@TableName("user_membership")
public class UserMembership {

    /**
     * ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 会员等级ID
     */
    private Integer levelId;

    /**
     * 订阅类型(WEEKLY/MONTHLY/QUARTERLY/YEARLY/SINGLE)
     */
    private String subscriptionType;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 到期时间
     */
    private LocalDateTime expireTime;

    /**
     * 状态 1:有效 0:过期
     */
    private Integer status;

    /**
     * 上次token刷新日期
     */
    private LocalDate tokenRefreshDate;

    /**
     * 剩余聊天次数
     */
    private Integer remainingChatCount;

    /**
     * 剩余切换智能体次数
     */
    private Integer remainingSwitchCount;

    /**
     * 会员来源
     */
    private String source;

    /**
     * 关联订单号
     */
    private String orderId;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
}